package cn.lutu.dao.mapper;


import cn.lutu.protocol.entity.RoleUser;
import cn.lutu.protocol.entity.User;
import cn.lutu.protocol.entity.UserAndRole;
import cn.lutu.protocol.vo.UserLoginInfoVO;
import cn.lutu.protocol.vo.UserVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserMapper extends BaseMapper<User> {
    /**
     * 根据用户名查询用户的登录信息
     *
     * @param userName 用户名
     * @return 匹配的用户的登录信息，如果没有匹配的数据，则返回null
     */
    UserVO selectByUserName(String userName);
    /**
     * 根据用户ID查询用户数据详情
     *
     * @param id 用户ID
     * @return 匹配的用户数据详情，如果没有匹配的数据，则返回null
     */
    UserVO selectById(Long id);

    UserVO selectByEmail(String email);
    /**
     * 根据用户名获取用户登录信息
     *
     * @param userName 用户名
     * @return 匹配的用户数据详情，如果没有匹配的数据，则返回null
     */
    UserLoginInfoVO getLoginInfoByUsername(String userName);
    /**
     * 修改用户数据详情
     *
     * @param user 用户
     * @return 匹配的用户数据详情，如果没有匹配的数据，则返回null
     */
    void updateInfoById(User user);
    /**
     * 修改用户密码
     *
     * @param user 用户
     * @return 匹配的用户数据详情，如果没有匹配的数据，则返回null
     */
    int updatePassword(User user);
    /**
     * 用户注册
     *
     * @param user 用户
     * @return 匹配的用户数据详情，如果没有匹配的数据，则返回null
     */
    int insert(User user);
}
